package com.hhxy.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * @author ghp
 * @date 2023/4/29
 * @title
 * @description 用于封装新增文章数据的传输对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "新增、编辑文章数据传输类")
public class AddArticleDto {

    /**
     * 文章id
     */
    @ApiModelProperty(value = "文章id", dataType = "Long")
    private Long id;

    /**
     * 文章标题
     */
    @ApiModelProperty(value = "文章标题")
    @NotBlank(message = "文章标题不能为空")
    private String title;
    /**
     * 文章内容
     */
    @ApiModelProperty(value = "文章内容")
    @NotBlank(message = "文章内容不能为空")
    private String content;
    /**
     * 文章摘要
     */
    @ApiModelProperty(value = "文章摘要")
    @NotBlank(message = "文章摘要不能为空")
    @Size(max = 50, message = "文章摘要信息不能超过50个字")
    private String summary;
    /**
     * 所属分类id
     */
    @NotNull(message = "文章分类不能为空")
    @ApiModelProperty(value = "文章分类id")
    private Long categoryId;
    /**
     * 缩略图
     */
    @NotBlank(message = "缩略图不能为空")
    @ApiModelProperty(value = "缩略图")
    private String thumbnail;
    /**
     * 是否置顶 0-否 1-是
     */
    @ApiModelProperty(value = "是否置顶 0-否 1-是")
    private String isTop;
    /**
     * 文章状态 0已发布 1-草稿
     */
    @ApiModelProperty(value = "文章状态 0-已发布 1-草稿")
    @NotBlank
    private String status;
    /**
     * 访问量
     */
    @ApiModelProperty(value = "文章访问量")
    private Long viewCount;
    /**
     * 是否允许评论 0-否 1-是
     */
    @ApiModelProperty(value = "是否允许评论 0-否 1-是")
    private String isComment;
    /**
     * 文章标签
     */
    @ApiModelProperty(value = "文章标签")
    @NotNull(message = "文章标签不能为空")
    private List<Long> tags;
}
